#!/bin/bash

IMAGE="$1"
ARCH="$2"

if [ $# -ne 2 ]; then
    echo "用法: $0 <镜像> <架构>"
    echo "示例: $0 nginx:latest amd64"
    exit 1
fi

# 先尝试获取manifests数组
MANIFESTS=$(skopeo inspect --raw "docker://$IMAGE" 2>/dev/null | jq -e ".manifests[]?" 2>/dev/null)

if [ $? -eq 0 ] && [ -n "$MANIFESTS" ]; then
    # 多架构镜像，直接用jq检查是否支持指定架构
    if ! skopeo inspect --raw "docker://${IMAGE}" | jq -e ".manifests[]?.platform.architecture==\"$ARCH\"" | grep -q true; then
        # 获取所有支持的架构用于显示
        ARCHITECTURES=$(skopeo inspect --raw "docker://$IMAGE" 2>/dev/null | jq -r '.manifests[].platform.architecture' 2>/dev/null | sort -u)
        echo "镜像 $IMAGE 不支持架构: $ARCH"
        exit 1
    else
        echo "镜像 $IMAGE 支持架构: $ARCH"
        exit 0
    fi
else
    # 单架构镜像，直接获取Architecture字段
    ARCHITECTURES=$(skopeo inspect "docker://$IMAGE" 2>/dev/null | jq -r '.Architecture' 2>/dev/null)
    
    if [ -z "$ARCHITECTURES" ] || [ "$ARCHITECTURES" = "null" ]; then
        echo "错误: 无法获取镜像 $IMAGE 的架构信息"
        exit 1
    fi
    
    # 检查是否支持指定架构
    if [ "$ARCHITECTURES" = "$ARCH" ]; then
        echo "镜像 $IMAGE 支持架构: $ARCH"
        exit 0
    else
        echo "镜像 $IMAGE 不支持架构: $ARCH"
        exit 1
    fi
fi 